// 隐藏内部实现

// function fn() {   //最小内部实现
//   var a = 1
//   var b = 2
//   return c = a + b
// }
// fn()  //3


// var b;
// function foo(a) {
//   b = a + bar(a * 2)
//   console.log(b * 3);
// }
// function bar(a) {
//   return a - 1
// }
// foo(2)

// 更合理的写法
// function foo(a) {
//   var b;

// function bar(a) {
//   return a - 1;
// }

// b = a + bar(a * 2)
// console.log(b * 3)
// }
// foo(2)

//规避冲突
function foo(a){
  function bar(a) {
    var i = 3
    console.log(a + i)
  }

  for(var i = 0; i < 10; i++) {
    bar(i * 2)  //无线循环了
  }
}
foo()